import 'package:flutter/material.dart';
import 'package:flutter_syt/generated/l10n.dart';
import 'package:flutter_syt/widgets/normal_table.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart';

class DyRefreshConfiguration extends StatelessWidget {
 final Widget child;
 const DyRefreshConfiguration(this.child, {super.key});

  @override
  Widget build(BuildContext context) {
    return RefreshConfiguration(
        headerBuilder: () {
          return CustomHeader(
            height: kHeight,
            builder: (ctx, state) {
              var txt = S().loading;
              if (state == RefreshStatus.failed) {
                txt = S().load_failed;
              } else if (state == RefreshStatus.canRefresh) {
                txt = S().release_to_refresh;
              } else if (state == RefreshStatus.idle) {
                txt = S().swipe_to_refresh;
              } else if (state == RefreshStatus.completed) {
                txt = S().refreshed;
              }
              Widget headerWidget = commonRefreshStateWidget(txt, Colors.transparent);
              // if (widget.refreshItemBuildet != null) {
              //   headerWidget = widget.refreshItemBuilder!(ctx, txt, state!);
              // }
              return headerWidget;
            },
          );
        }, // 配置默认头部指示器,假如你每个页面的头部指示器都一样的话,你需要设置这个
        footerBuilder: () {
          return CustomFooter(
            builder: (context, state) {
              var txt = S().loading;
              if (state == LoadStatus.failed) {
                txt = S().load_failed;
              } else if (state == LoadStatus.noMore) {
                txt = S().no_more;
              } else if (state == LoadStatus.idle) {
                txt = S().load_more;
              }
              return Container(
                // color: Colors.red,,
                child: Column(
                  crossAxisAlignment: CrossAxisAlignment.center,
                  children: [
                    // SizedBox(
                    //   height: 20,
                    // ),
                    Image.asset(
                      "assets/icons/refresh_footer.png",
                      width: 36,
                      height: 32,
                    ),
                    Text(
                      txt,
                      style: TextStyle(
                          color: Colors.black.withOpacity(0.4), fontSize: 11),
                    ),
                  ],
                ),
              );
            },
          );
        },
        headerTriggerDistance: 80.0, // 头部触发刷新的越界距离
        springDescription: SpringDescription(
            stiffness: 170,
            damping: 16,
            mass: 1.9), // 自定义回弹动画,三个属性值意义请查询flutter api
        maxOverScrollExtent: 100, //头部最大可以拖动的范围,如果发生冲出视图范围区域,请设置这个属性
        maxUnderScrollExtent: 0, // 底部最大可以拖动的范围
        enableScrollWhenRefreshCompleted:
            true, //这个属性不兼容PageView和TabBarView,如果你特别需要TabBarView左右滑动,你需要把它设置为true
        enableLoadingWhenFailed: true, //在加载失败的状态下,用户仍然可以通过手势上拉来触发加载更多
        hideFooterWhenNotFull: false, // Viewport不满一屏时,禁用上拉加载更多功能
        enableBallisticLoad: true, // 可以通过惯性滑动触发加载更多
        child: child);
  }
}
